#include "..\CookHeader.h"

Array <int> dataAry;
int sortCount = 0;

Array <int> quickSort(Array <int> ary) {
	int n = len(ary);
	if (n <= 1)				//  Ʈ  1 ϸ
		return ary;

	int pivot = ary[n / 2];	//   ߰ 
	Array <int> leftAry, rightAry;

	for (int i = 0; i < n; i++) {
		int num = ary[i];
		sortCount++;
		if (num < pivot)
			leftAry.push_back(num);
		else if (num > pivot)
			rightAry.push_back(num);
	}

	Array <int> retLeft, retRight;
	retLeft = quickSort(leftAry);  //  迭 
	retLeft.push_back(pivot);		// ǹ 
	retRight = quickSort(rightAry);	//  迭 
	retLeft.insert(retLeft.end(), retRight.begin(), retRight.end());  //  +  -->  
	return retLeft;
}

int main() {
	randomInit(0, 200);  // 0~200   
	for (int i = 0; i < 10; i++)
		dataAry.push_back(cookRandom(gen));  
	print("  -->");
	printArray(dataAry);
	dataAry = quickSort(dataAry);
	print("  -->");
	printArray(dataAry);
	println("## " + to_string(sortCount) + "ȸ 񱳷  Ϸ");
}
